home *** CD-ROM | disk | FTP | other *** search
/ Hardcore Visual Basic 5.0 (2nd Edition) / Hardcore Visual Basic 5.0 - Second Edition (1997)(Microsoft Press).iso / Code / TBEZIER.FRM < prev    next >
Text File  |  1997-06-14  |  2KB  |  77 lines

  1. VERSION 5.00
  2. Begin VB.Form FTestBezier 
  3.    AutoRedraw      =   -1  'True
  4.    BackColor       =   &H00FFFFFF&
  5.    Caption         =   "Bezier Curves"
  6.    ClientHeight    =   5385
  7.    ClientLeft      =   1095
  8.    ClientTop       =   1515
  9.    ClientWidth     =   4410
  10.    DrawStyle       =   2  'Dot
  11.    Icon            =   "TBEZIER.frx":0000
  12.    LinkTopic       =   "Form1"
  13.    PaletteMode     =   1  'UseZOrder
  14.    ScaleHeight     =   5385
  15.    ScaleWidth      =   4410
  16. End
  17. Attribute VB_Name = "FTestBezier"
  18. Attribute VB_GlobalNameSpace = False
  19. Attribute VB_Creatable = False
  20. Attribute VB_PredeclaredId = True
  21. Attribute VB_Exposed = False
  22. Option Explicit
  23.  
  24. Private apt(0 To 3) As POINTL
  25.  
  26. Private Sub Form_Load()
  27.     Show
  28.     InitBezier ScaleWidth, ScaleHeight
  29.     DrawBezier
  30. End Sub
  31.  
  32. Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
  33.     If Button Then MoveBezier Button, x, y
  34. End Sub
  35.  
  36. Private Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
  37.     MoveBezier Button, x, y
  38. End Sub
  39.  
  40.  
  41. Sub InitBezier(cxClient As Long, cyClient As Long)
  42.     apt(0).x = ScaleX(cxClient / 2, vbTwips, vbPixels)
  43.     apt(0).y = ScaleY(cyClient / 10, vbTwips, vbPixels)
  44.     apt(1).x = ScaleX(cxClient / 4, vbTwips, vbPixels)
  45.     apt(1).y = ScaleY(cyClient / 2, vbTwips, vbPixels)
  46.     apt(2).x = ScaleX(3 * cxClient / 4, vbTwips, vbPixels)
  47.     apt(2).y = ScaleY(cyClient / 2, vbTwips, vbPixels)
  48.     apt(3).x = ScaleX(cxClient / 2, vbTwips, vbPixels)
  49.     apt(3).y = ScaleY(9 * cyClient / 10, vbTwips, vbPixels)
  50.     ForeColor = vbRed
  51. End Sub
  52.  
  53. Sub DrawBezier()
  54.     DrawStyle = vbSolid
  55.     PolyBezier hDC, apt(0), 4
  56.     DrawStyle = vbDot
  57.     MoveTo hDC, apt(0).x, apt(0).y
  58.     LineTo hDC, apt(1).x, apt(1).y
  59.     MoveTo hDC, apt(2).x, apt(2).y
  60.     LineTo hDC, apt(3).x, apt(3).y
  61. End Sub
  62.  
  63. Sub MoveBezier(ordButton As Integer, cx As Single, cy As Single)
  64.     ForeColor = BackColor
  65.     DrawBezier
  66.     If ordButton = vbLeftButton Then
  67.         apt(1).x = ScaleX(cx, vbTwips, vbPixels)
  68.         apt(1).y = ScaleY(cy, vbTwips, vbPixels)
  69.     End If
  70.     If ordButton = vbRightButton Then
  71.         apt(2).x = ScaleX(cx, vbTwips, vbPixels)
  72.         apt(2).y = ScaleY(cy, vbTwips, vbPixels)
  73.     End If
  74.     ForeColor = vbRed
  75.     DrawBezier
  76. End Sub
  77.